首页> 外文OA文献 >Automatic Parallelization: Executing Sequential Programs on a Task-Based Parallel Runtime
【2h】

Automatic Parallelization: Executing Sequential Programs on a Task-Based Parallel Runtime

机译:自动并行化:在基于任务的基础上执行顺序程序   并行运行时

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

There are billions of lines of sequential code inside nowadays' softwarewhich do not benefit from the parallelism available in modern multicorearchitectures. Automatically parallelizing sequential code, to promote anefficient use of the available parallelism, has been a research goal for sometime now. This work proposes a new approach for achieving such goal. We createda new parallelizing compiler that analyses the read and write instructions, andcontrol-flow modifications in programs to identify a set of dependenciesbetween the instructions in the program. Afterwards, the compiler, based on thegenerated dependencies graph, rewrites and organizes the program in atask-oriented structure. Parallel tasks are composed by instructions thatcannot be executed in parallel. A work-stealing-based parallel runtime isresponsible for scheduling and managing the granularity of the generated tasks.Furthermore, a compile-time granularity control mechanism also avoids creatingunnecessary data-structures. This work focuses on the Java language, but thetechniques are general enough to be applied to other programming languages. Wehave evaluated our approach on 8 benchmark programs against OoOJava, achievinghigher speedups. In some cases, values were close to those of a manualparallelization. The resulting parallel code also has the advantage of beingreadable and easily configured to improve further its performance manually.
机译:当今的软件中有数十亿行顺序代码无法从现代多核体系结构中使用的并行性中受益。自动并行化顺序代码以提高对可用并行性的有效利用已成为当今一段时间的研究目标。这项工作提出了实现这一目标的新方法。我们创建了一个新的并行化编译器,用于分析读写指令以及程序中的控制流修改,以识别程序中指令之间的一组依赖关系。然后,编译器基于生成的依赖关系图,以面向任务的结构重写和组织程序。并行任务由无法并行执行的指令组成。基于工作窃取的并行运行时负责调度和管理所生成任务的粒度。此外,编译时粒度控制机制还避免了创建不必要的数据结构。这项工作的重点是Java语言,但是这些技术足够通用,可以应用于其他编程语言。我们已经针对OoOJava在8个基准程序上评估了我们的方法,从而提高了速度。在某些情况下,值接近于手动并行化。生成的并行代码还具有可读性强,易于配置的优点,可以进一步手动提高其性能。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号